Method and apparatus for detecting actual viewing or electronic advertisements

ABSTRACT

An apparatus and method for determining rates chargeable to advertisers based upon the actual viewing time for which their advertisements were seen by a given user. This is accomplished through the use of a advertisement control plug in combination with a file used during times in which the user is not connected to the Internet or other applicable network.

CROSS-REFERENCE TO RELATED APPLICATION

The present patent application is related to Ser. No. 08/080,023, nowallowed, entitled “METHOD AND APPARATUS FOR DETECTING ACTUAL VIEWING OFELECTRONIC ADVERTISEMENTS” which is hereby incorporated by referenceherein.

The present patent application is related to Ser. No. 09/080,021,entitled “METHOD AND APPARATUS FOR DETECTING ACTUAL VIEWING OFELECTRONIC ADVERTISEMENTS AND TRANSMITTING THE DETECTED INFORMATION”which is hereby incorporated by reference herein.

The present patent application is related to Ser. No. 09/080,018,entitled “METHOD AND APPARATUS FOR DYNAMICALLY ALTERING THE CONTENTS OFELECTRONICALLY DISPLAYED INFORMATION BASED UPON A USER PROFILE” which ishereby incorporated by reference herein.

BACKGROUND

1. Field of the Present Invention

The present invention generally relates to computer systems, and moreparticularly, to methods and apparatuses which detect the use andviewing of electronic advertising means such as web (HTML) pages,Applets or the like.

2. Description of the Related Art

The development of computerized distributed information resources, suchas the “Internet”, allows users to link with servers and networks, andretrieve vast amounts of electronic information that was previouslyunavailable using conventional electronic mediums. Such electronicinformation increasingly is displacing more conventional techniques ofinformation transmission, such as newspapers, magazines, and eventelevision.

The term “Internet” is an abbreviation for “Inter network”, and referscommonly to a collection of computer networks that use the TCP/IP suiteof protocols. TCP/IP is an acronym for “Transport ControlProtocol/Interface Program”, a software protocol developed by theDepartment of Defense for communication between computers.

Electronic information transferred between computer networks (e.g., theInternet) can be presented to a user in hypertext, a metaphor forpresenting information in a manner in which text, images, sounds, andactions become linked together in a complex non-sequential web ofassociations that permit the user to “browse” through related topics,regardless of the presented order of the topics. These links are oftenestablished by both the author of a hypertext document and by the user.

For example, traveling among hypertext links to the word “iron” in anarticle displayed within a graphical user interface might lead the userto the periodic table of the chemical elements (e.g., linked by the word“iron”), or to a reference to the use of iron in weapons in Europe inthe Dark Ages. The term “hypertext” is used to describe documents, aspresented by a computer, that express the non-lineal structure of ideas,as opposed to the linear format of books, film, and speech.

Hypertext, especially in an interactive format where choices arecontrolled by the user, is structured around the idea of offering aworking and learning environment that parallels human thinking—that is,an environment that allows the user to make associations between topics,rather than moving sequentially from one topic to the next, as in analphabetic list. In other words, hypertext topics are linked in a mannerthat allows users to jump from one subject to other related subjectsduring a search for information.

Networked systems using hypertext conventions typically follow aclient/server architecture. A “client” is a member of a class or groupthat uses the services of another class or group to which it is notrelated. In the context of a computer network, such as the Internet, aclient is a process (i.e., roughly a program or task) that requests aservice which is provided by another program. The client process usesthe requested service without having to “know” any working details aboutthe other program or the service itself. In networked systems, a clientis usually a computer that accesses shared network resources provided byanother computer (i.e., a server).

A “server” is typically a remote computer system which is accessibleover a communications medium such as the Internet. The server scans andsearches for raw (e.g., unprocessed) information sources (e.g., newswire feeds or news groups). Based upon such requests by the user, theserver presents filtered electronic information to the user as serverresponses to the client process. The client process may be active in asecond computer system, and communicate with one another over acommunications medium that allows multiple clients to take advantage ofthe information-gathering capabilities of the server.

Clients and servers communicate with one another using the functionalityprovided by a HyperText Transfer Protocol (HTTP), or other interactiveprotocol (e.g. COBRA, or IIOP), or secure links (e.g. HTTPS). The WorldWide Web (WWW) or, simply, the “web,” includes all servers adhering tothis protocol, which are accessible to clients via a Universal ResourceLocation (URL). Internet services can be accessed by specifyingUniversal Resource Locators that have two basic components: a protocolto be used and an object path name. For example, the Universal ResourceLocator address, “http://www.uspto.gov” (i.e., the “home page” for theU.S. Patent and Trademark Office), specifies a hypertext transferprotocol (“http”) and a path name of the server (“www.uspto.gov”).

The server name is associated with a unique numeric value (TCP/IPaddress). Active within the client is a first process, known as a“browser”, that establishes the connection with the server, and presentsinformation to the user. The server itself executes corresponding serversoftware that presents information to the client in the form of HTTPresponses. The HTTP responses correspond to “web pages” constructed froma Hypertext Markup Language (HTML), Dynamic HTML, Java Applets, or otherserver-generated data.

A “web page”, as used hereinafter, defines a viewing area that can bemanipulated by the end user, such that the contents may not be seen intheir entirety. As defined, a web page may be, for example, a data filewritten in a hypertext language that may have text, graphic images, andeven multimedia objects such as sound recordings or move video clipsassociated with that data file. The web page can be displayed as aviewable object (e.g. a window) within a computer system. A viewableobject can contain one or more components such as spreadsheets, text,hot links, pictures, sound, and video objects. A web page can beconstructed by loading one or more separate files into an activedirectory or file structure that is then displayed as a viewable objectwithin a graphical user interface.

When a client workstation sends a request to a server for a web page,the server first transmits (at least partially) the main hypertext fileassociated with the web page, and then loads, either sequentially orsimultaneously, the other files associated with the web page. A givenfile may be transmitted as several separate pieces via TCP/IP protocol.The constructed web page is then displayed as a viewable object on theworkstation monitor. A web page may be “largeri” than the physical sizeof the monitor screen, and devices such as graphical user interfacescroll bars can be utilized by the viewing software (i.e., the browser)to view different portions of the web page.

Most text displayed by a web browser is formatted using standard HTML.An HTML file is a text file that contains both the text to be displayedand markup tags that describe how the text should be formatted by theweb browser. The HTML markup tags support basic text formatting, such asparagraph breaks, bullet lists, tables, graphs, charts, and so forth. Inaddition to these basic text formatting tags, HTML provides tagsdefining graphical user interface components. HTML also can be used todisplay well known graphical user interface components such as radiobuttons, check boxes, scrolling lists of selectable text, and variousother such components at the web browser itself.

As the Internet has increased in popularity, the number of users and theamount of time they spend using the Internet has increasedproportionately, thus, allowing a new field for exploiting variousproducts via the means of advertising.

Advertisers are now able to embed their advertisements on web pages andJava Applets in a fashion similar to that of billboards or other typemedia where they would expect a user interested in that type of productto normally visit. In contrast to prior media, however, the Internet hasprovided the user with the ability to control not only the type ofcontent that they desire to view, but whether or not entire portions ofthe content will be viewed (e.g. only viewing the text portions of a webpage, excluding the image or advertising portions).

Consequently, today advertisers are charged a flat rate for space on webpages. Unfortunately, since the user is able to direct what content theywish to see, and whether the entire content will be viewed, certainadvertisements on a web page may not even be seen by a given user.

It would, therefore, be a distinct advantage to have a method andapparatus that would allow varying rates to be charged to theadvertisers for placing their advertisements on a web page based uponwhether or not these advertisement are actually seen by the user, andfor the amount of time for which the advertisement was viewed. Thepresent invention provides such a method and apparatus.

SUMMARY OF THE PRESENT INVENTION

The present invention is an apparatus and method for determining rateschargeable to advertisers based upon the actual viewing time for whichtheir advertisements were seen by a given user. This is accomplishedthrough the use of an advertisement control plug in combination with afile used during times in which the user is not connected to theInternet or other applicable network.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of this invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objects, and advantages thereof, willbest be understood by reference to the following detailed description ofa preferred embodiment when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 is a diagram of a data processing system in which the presentinvention can be practiced;

FIG. 2 in a high level block diagram illustrating selected componentsthat can be included in the data processing system of FIG. 1 accordingto the teachings of the present invention;

FIG. 3 illustrates a block diagram illustrative of a client/serverarchitecture in accordance with a preferred embodiment of the presentinvention;

FIG. 4 depicts a detailed block diagram of a client/server architecturein accordance with a preferred embodiment of the present invention;

FIG. 5 is a diagram illustrative of a computer network which can beimplemented in accordance with a preferred embodiment of the presentinvention;

FIG. 6 is a diagram illustrating a Browser executing the HTML document(web page) of FIG. 4 in accordance with the teachings of the presentinvention;

FIG. 7 is a diagram illustrating in greater detail the advertisementcontrol plugin of FIG. 6 according to the teachings of the presentinvention; and

FIGS. 8A-B are a flow chart illustrating the recording and transmissionof advertising information using the Advertisement Control PlugIn ofFIG. 7 according to the teachings of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE PRESENTINVENTION

In the following description, numerous specific details are set forthsuch as specific word or byte lengths, etc., to provide a thoroughunderstanding of the present invention. However, it will be obvious tothose of ordinary skill in the art that the present invention can bepracticed without such specific details.

Reference now being made to FIG. 1, a data processing system 20 is shownin which the present invention can be practiced. The data processingsystem 20 includes processor 22, keyboard 82, and display 96. Keyboard82 is coupled to processor 22 by a cable 28. display 96 includes displayscreen 30, which may be implemented using a cathode ray tube (CRT) aliquid crystal display (LCD) an electrode luminescent panel or the like.The data processing system 20 also includes pointing device 84, whichmay be implemented using a track ball, a joy stick, touch sensitivetablet or screen, track path, or as illustrated a mouse. The pointingdevice 84 may be used to move a pointer or cursor on display screen 30.Processor 22 may also be coupled to one or more peripheral devices suchas modem 92, CD-ROM 78, network adapter 90, and floppy disk drive 40,each of which may be internal or external to the enclosure or processor22. An output device such as printer 100 may also be coupled withprocessor 22.

It should be noted and recognized by those persons of ordinary skill inthe art that display 96, keyboard 82, and pointing device 84 may each beimplemented using anyone of several known off-the-shelf components.

Reference now being made to FIG. 2, a high level block diagram is shownillustrating selected components that can be included in the dataprocessing system 20 of FIG. 1 according to the teachings of the presentinvention. The data processing system 20 is controlled primarily bycomputer readable instructions, which can be in the form of software,wherever, or by whatever means such software is stored or accessed. Suchsoftware may be executed within the Central Processing Unit (CPU) 50 tocause data processing system 20 to do work.

Memory devices coupled to system bus 5 include Random Access Memory(RAM) 56, Read Only Memory (ROM) 58, and nonvolatile memory 60. Suchmemories include circuitry that allows information to be stored andretrieved. ROMs contain stored data that cannot be modified. Data storedin RAM can be changed by CPU 50 or other hardware devices. Nonvolatilememory is memory that does not loose data when power is removed from it.Nonvolatile memories include ROM, EPROM, flash memory, or battery-packCMOS RAM. As shown in FIG. 2, such battery-pack CMOS RAM may be used tostore configuration information. An expansion card or board is a circuitboard that includes chips and other electronic components connected thatadds functions or resources to the computer. Typically expansion cardsadd memory, disk-drive controllers 66, video support, parallel andserial ports, and internal modems. For lop top palm top, and otherportable computers, expansion cards usually take the form of PC cards,which are credit card-sized devices designed to plug into a slot in theside or back of a computer. An example such a slot is PCMCIA slot(Personal computer Memory Card International Association) which definestype 1, 2 and 3 card slots. Thus, empty slots 68 may be used to receivevarious types of expansion cards or PCMCIA cards.

Disk controller 66 and diskette controller 70 both include specialpurpose integrated circuits and associated circuitry that direct andcontrol reading from and writing to hard disk drive 72, and a floppydisk or diskette 74, respectively. Such disk controllers handle tasksuch as positioning read/write head, mediating between the drive and theCPU 50, and controlling the transfer information to and from memory. Asingle disk controller may be able to control more than one disk drive.

CD-ROM controller 76 may be included in data processing 20 for readingdata from CD-ROM 78 (compact disk read only memory). Such CD-ROMs uselaser optics rather then magnetic means for reading data.

Keyboard mouse controller 80 is provided in data processing system 20for interfacing with keyboard 82 and pointing device 84. Such pointingdevices are typically used to control an on-screen element, such as acursor, which may take the form of an arrow having a hot spot thatspecifies the location of the pointer when the user presses a mousebutton. Other pointing devices include the graphics tablet, the stylus,the light pin, the joystick, the puck, the track ball, the track pad,and the pointing device sold under the trademark “Track Point” by IBM.

Communication between processing system 20 and other data processingsystems may be facilitated by serial controller 88 and network adapter90, both of which are coupled to system bus 5. Serial controller 88 isused to transmit information between computers, or between a computerand peripheral devices, one bit at a time over a single line. Serialcommunications can be synchronous (controlled by some standard such as aclock) or asynchronous (managed by the exchange of control signals thatgovern the flow of information). Examples of serial communicationstandards include RS232 interface and the RS-422 interface. Asillustrated, such a serial interface may be used to communicate withmodem 92. A modem is a communication device that enables a computer totransmit information over a standard telephone line. Modems convertdigital computer signals to interlock signals suitable forcommunications over telephone lines, Modem 92 can be utilized to connectdata processing system 20 to an on-line information service, such as aninformation service provided under the service mark “PRODIGY” by IBM andSears. Such on-line service providers may offer software that may bedown loaded into data processing system 20 via modem 92. Modem 92 mayprovide a connection to other sources of software, such as server, anelectronic bulletin board, the Internet or World Wide Web.

Network adapter 90 may be used to connect data processing system 20 to alocal area network 94. network 94 may provide computer users with meansof communicating and transferring software and informationelectronically. Additionally, network 94 may provide distributedprocessing, which involves several computers in the sharing of workloadsor cooperative efforts in performing a task.

Display 96, which is controlled by display controller 98, is used todisplay visual output generated by data processing system 20. Suchvisual output may include text, graphics, animated graphics, and video.Display 96 may be implemented with CRT-based video display, an LCD-basedflat panel display, or a gas plasma-based flat-panel display. Displaycontroller 98 includes electronic components required to generate avideo signal that is sent to display 96.

Printer 100 may be coupled to data processing system 20 via parallelcontroller 102. Printer 100 is used to put text or a computer-generatedimage on paper or on another medium, such as transparency. Other type ofsplinters may include an image setter, a plotter, or a film recorder.

Parallel controller 102 is used to send multiple data and control bitssimultaneously over wires connected between system bus 5 and anotherparallel communication device, such as plinter 100.

CPU 50 fetches, decodes, and executes instructions, and transfersinformation to and from other resources via the computers maindata-transfer path, system bus 5. Such a bus connects the components ina data processing system 20 and defines the medium for data exchange.System bus 5 connects together and allows for the exchange of databetween memory units 56, 58, and 60, CPU 50, and other devices as shownin FIG. 2.

Reference now being made to FIG. 3, a block diagram is shownillustrating a client/server architecture for which the computer system20 of FIG. 1 can be used as the client 192 in accordance with apreferred embodiment of the present invention. In FIG. 3, user requests191 for news are sent by a client 192 to a server 188. Server 188 can bea remote computer system accessible over the Internet or othercommunication networks.

Server 188 can perform the function of scanning and searching of raw(e.g., unprocessed) information sources (e.g., news wire feeds or newsgroups) via a server process and, based upon these user requests,present the filtered electronic information as server responses 193 tothe client 192 via a client process (not shown). The client process maybe active in a first computer system, and the server process may beactive in a second computer system, communicating with one another overa communications medium, thus providing distributed functionality andallowing multiple clients to take advantage of the information-gatheringcapabilities of the server 188.

Reference now being made to FIG. 4, a detailed block diagram is shown ofthe client/server architecture of FIG. 3 in accordance with a preferredembodiment of the present invention.

Client 192 and server 188 communicate by using the functionalityprovided by the HTTP protocol. Active within client 192 is a browser172, which can be described in general as a means for establishingconnections with server 188, and presenting information to the user. Anynumber of commercially or publicly available browsers can be used invarious implementations in accordance with the preferred embodiment ofthe present invention. For example, a browser such as Netscape™ can beused in accordance with a preferred embodiment of the present inventionto provide the functionality specified under HTTP. “Netscape” is atrademark of Netscape, Inc.

Server 188 executes the corresponding server software, which presentsinformation to the client 192 in the form of HTTP responses 190. TheHTTP responses 190 correspond with the web pages represented using HTML,or other data generated by server 188. Server 188 provides HTML 194.

Under certain browsers, a Common Gateway Interface (CGI) 196 is alsoprovided, which allows the client program to direct server 188 tocommence execution of a specified program contained within server 188.This may include a search engine that scans received information in theserver 188 for presentation to the user controlling the client 192.Using this interface, and HTTP responses 190, the server 188 can notifythe client 192 of the results of that execution upon completion.

Common Gateway Interface (CGI) 196 is one form of a gateway, a deviceused to connect dissimilar networks (i.e., networks using differentcommunications protocols) so that electronic information can be passedfrom one network to the other. Gate ways transfer electronicinformation, converting such information to a form compatible with theprotocols used by the second network for transport and delivery.

In order to control the parameters of the execution of this serverpresent process, the client 192 may direct the filling out of certain“forms” from the browser. This is provided by the “fill-in-forms”functionality (i.e., forms 198), which is provided by some browsers.This functionality allows the user via a client application program tospecify terms in which the server 188 causes an application program tofunction (e.g., terms or keywords contained in the types ofstories/articles which are of interest to the user). This functionalityis an integral part of the search engine.

Reference now being made to FIG. 5, a diagram is shown illustrating acomputer network 180 having a plurality of clients 192 and servers 188of FIG. 4 in accordance with a preferred embodiment of the presentinvention. Computer network 180 is representative of the Internet, whichcan be described as a known computer network based on the client-servermodel discussed previously. Of course, those skilled in the art willappreciate that the Internet is not the only distributed computernetwork that may be used in accordance with a preferred embodiment ofthe present invention. Other distributed computer networks such as theso-called “intranets” will known in the art of computer networking canalso be used to implement computer network 180.

Conceptually, the Internet includes a large network of servers 188 thatare accessible by clients 192, typically users of personal computers,through some private Internet access provider 184 (e.g., such asInternet America) or an on-line service provide 86 (e.g., such asAmerica On-Line, Prodigy, CompuServe, and the like). Each of the clients192 may run a browser to access servers 188 via the access providers.Each server 188 operates a so-called “web site” that supports files inthe form of documents and pages. A network path to servers 188 isidentified by a Universal Resource Locator having a known syntax fordefining a network collection.

Reference now being made to FIG. 6, a diagram is shown illustrating aBrowser 600 executing the HTML document (web page) 194 of FIG. 4 inaccordance with the teachings of the present invention. Browser 600 canbe any commercially available web browser (e.g. Netscape Navigator™ orInternet Explorer™). In the preferred embodiment of the presentinvention, Browser 600 operates in a window type environment, andconsequently includes all the functionality provided from suchenvironment, such as vertical and horizontal scroll bars, menus, etc . .. (not shown).

As illustrated in FIG. 6, Web Browser 600 has loaded the HITML page 194as previously discussed in connection with FIGS. 4-5. The web page 194includes advertising elements A-D 606-612. Each of the advertisingelements A-D 606-612 represent an image and /or text for displaying anadvertisement to the user.

During the downloading of web page 194, the user is given the option todownload a plugin (Advertisement Control PlugIn 604 ) which supportstime tracking for advertisements. Once installed, the AdvertisementControl PlugIn 604 controls the movement and functionality of the webpage 194, and tracks the time intervals for which each of theadvertisements A-D 606-612 is viewable as explained greater detail inconnection with FIG. 7. Those skilled in the ait will readily recognizeand fully understand that a Java Application could also be used toperform the same functionality of the Advertisement Control PlugIn 604.In addition, those skilled in the art will also recognize that theAdvertisement Control PlugIn 604 could be incorporated into thefunctionality of a web browser. Therefore, the present invention isequally applicable to either such alternative implementations.

Reference now being made to FIG. 7, a diagram is shown illustrating ingreater detail the Advertisement Control PlugIn 604 of FIG. 6 accordingto the teachings of the present invention. The Advertisement ControlPlugIn 604 detects when an advertisement A-D 606-612 is viewable. Theterm viewable, as used hereinafter, is used to define when a particularadvertisement is completely or identifiably (i.e. partially but notcompletely) seen by the end user. The paiticular method or statisticsused for such determination are most likely to be negotiated between theparties, and therefore, definable based upon these negotiations.Consequently, it will be assumed for the remainder of this discussionthat an advertisement A-D 606-612 is viewable only when the entireadvertisement A-D 606-612 is completely viewable within the display areaof the Browser 600.

The Advertisement Control Plugfn 604 detects when an advertisement A-D606-612 becomes viewable within the display area of web Browser 600, andbegins to time the viewable event. If the viewable event exceeds apre-selected time interval, and the user is still connected to theInternet, the Advertisement Control PlugIn 604 transmits the timeinterval and other relevant information to the corresponding serverusing well known and understood techniques (e.g. the CGI protocol).

If, however, the user is not connected to the Internet (i.e. they areviewing the web page via the cache of the web browser), then theAdvertisement Control PlugIn 604 records the time interval in a filesuch as Advertisement Tracking File 704. The particular layout andformat of the Advertisement Tracking File 704 is designer dependent, butat a minimum must contain, the URL of the server for the web page, andthe cumulative time for which a particular advertisement was visible.

Regardless of whether the user is connected to the Internet or viewingfrom the browser cache, the Advertisement Control PlugIn 604 alsodetermines when a particular advertisement A-D 606-612 has been viewablefor a pre-selected interval of time which is indicative of instances inwhich the user loads a particular web page and leaves the computersystem unattended (i.e. a time out) and excludes such periods from beingrecorded as viewable for any particular visible advertisement A-D606-612.

Reference now being made to FIGS. 8A-B, a flow chart is shownillustrating the recording and transmission of advertising informationusing the Advertisement Control PlugIn 604 of FIG. 7 according to theteachings of the present invention. For illustration and discussionpurposes only, it can be assumed that the requested web page is web page194 and the visible advertisement is advertisement 606.

The method begins upon the user requesting a web page 194 via a URL(Step 802). Once the server 188 corresponding to the web page islocated, the web page 194 is downloaded, and it is determined whether ornot the user has previously installed the Advertisement Control PlugIn604 (Step 804). If the user has not previously installed theAdvertisement Control PlugIn 604, then the user is given the option toinstall the Advertisement Control PlugIn 604 (Step 806). If the userselects the option to install, then the Advertisement Control PlugIn 604is retrieved and installed using well known and understood techniques(Step 810). If, however, the user fails to install the AdvertisementControl PlugIn 604, then the method proceeds to end (Step 808).

Once the web page 194 has been downloaded, the Advertisement ControlPlugIn 604 is used for displaying the web page 194 and processing anyfunctional movement therewith. In addition, the Advertisement ControlPlugIn 604 searches for the existence of any prior recordings ofadvertisement information which has not been transmitted to theresponsible server via the Advertisement Tracking File 704, if it exists(Step 812).

If the Advertisement Control PlugIn 604 locates any prior advertisinginformation, then the information is transmitted to the specified server188 (via the URL information contained in the cookie 712) using wellknown and understood techniques for establishing communication with thespecified server 188, and transmission of such information (Step 814).It should be noted, however, that in an alternative embodiment, theserver 188 containing the initially requested web page 194 could forwardthe advertising information to each of the responsible servers 188. Anyprior recorded advertising infotmation which was successfullytransmitted is deleted from Advertisement Tracking File 704 (Step 816and 818).

Once the Advertisement Control PlugIn 604 detects that an advertisementA 606 has become visible (Step 82), the Advertisement Control PlugIn 604begins to track the time during which the advertisement A 606 isvisible. If the visible event exceeds a pre-selected time interval (Step822), then the Advertisement Control PlugIn 604 deteimines whether thetotal time for which the advertisement A 606 including the visible eventexceeds the inactivity time out period (step 824). If the total visibletime exceeds the time out period, then the Advertisement Control PlugIn604 proceeds to cease the timing of visible events, until the userresumes their viewing activity at which point the method proceeds fromthat point (Step 820).

If the total visible time does not exceed the time out period, then theAdvertisement Control PlugIn 604 determines whether it is stillconnected to the Internet or other applicable network (Step 828). If theconnection is still present, then the visible time, and any o theradditional information required, for which the advertisement A 606 waspresent is sent to the responsible server 188 (Step 830).

If, however, the connection is no longer present (i.e. the user isviewing the page 194 via the cache of the web browser), then theAdvertisement Control PlugIn 604 must record the advertising informationin the Advertisement Tracking File 704. In order to perform the abovenoted task, the Advertisement Control PlugIn 604 must first determinewhether either the Advertisement Tracking File 704 exists (Step 832). Ifthe Advertisement Tracking File 704 does not exist, then it is created(Step 834), and the advertising information recorded (Step 836). If,however, the Advertisement Tracking File does exist, then theadvertising information is either added to a new entry, or cumulativelyadded to an existing entry, representing the advertisement A 606.

Although an illustrative embodiment of the present inventions and theiradvantages have been described in detail herein above, it has beendescribed as example and not as limitation. Various changes,substitutions and/or alterations can be made in the illustrativeembodiment without departing from the breadth, scope and spirit of thepresent inventions. The breadth, scope and spirit of the presentinventions should not be limited by the illustrative embodiment, butshould be defined only in accordance with the following claims andequivalents thereof.

What is claimed is:
 1. In a computer environment where textual andgraphical information are viewed in a web browser window by an end user,the window capable of displaying information having a physical sizegreater than the physical dimensions of the window, a method ofdetecting and recording time periods during which certain portions ofthe information are viewable by the user, the method comprising thesteps of: detecting when a predefined portion of the information isdisplayed within the physical dimensions of the window; and recording inpredefined time intervals the detection of the displayed information. 2.The method of claim 1 wherein the portion of information is anadvertisement.
 3. The method of claim 2 wherein the steps of detectingand recording are performed by a control module adapted to performextended functionality for the web browser.
 4. The method of claim 2wherein the step of recording includes the step of: transmitting thepredefined intervals to a remotely located computer.
 5. The method ofclaim 4 further comprising the step of: receiving the textual andgraphical information from a remotely located computer.
 6. The method ofclaim 5 wherein the step of transmitting includes the step of:transmitting the predefined intervals to the remotely located computerfrom which the information was received.
 7. The method of claim 5wherein the step of transmitting includes the step of: transmitting thepredefined intervals to a remotely located computer which is differentfrom the remotely located computer from which the information wasreceived.
 8. The method of claim 6 wherein the predefined portion is onehundred percent of the information.
 9. The method of claim 8 wherein theweb browser is no longer in communication with the remotely locatedcomputer from which the information was received, and the step ofrecording includes: recording in predefined time intervals the detectionof the information to a file located in the computer environment. 10.The method of claim 9 further comprising the step of: transmitting, oncecommunication from the web browser is established with a remotelylocated computer, the recorded information from the file to the remotelylocated computer.
 11. The method of claim 10 wherein the step ofrecording includes the step of: recording, only if the information hasnot been displayed longer than a predefined maximum period of time, thedetection of the displayed information in predefined time intervals. 12.The method of claim 11 wherein the information is an advertisement. 13.In a computer environment where textual and graphical information areviewed in a web browser window by an end user, the window capable ofdisplaying information having a physical size greater than the physicaldimensions of the window, an apparatus for detecting and recording theperiod of time for which certain advertising portions of the informationare viewable by the user, the apparatus comprising: means for detectingwhen a predefined portion of the information is displayed within thephysical dimensions of the window; and means for recording in predefinedtime intervals the detection of the displayed information.
 14. Acomputer program product comprising: a computer readable usable mediumhaving computer readable program code means embodied in the medium fordetecting and recording the period of time for which certain portions oftextual and/or graphical information are viewable in a browser window byan end user, the computer readable program code means including: meansfor detecting predefined portion of the information is displayed withinthe physical dimensions of the window; means for recording in predefinedtime intervals the detection of the displayed information; meansoperable while the user is connected to the Internet for is transmittingthe predetermined intervals to a remotely located computer; and meansoperable while the user is not connected to the Internet for locallystoring the predetermined intervals for subsequent transmission to saidremotely located computer.
 15. The computer program product of claim 14wherein the portion of information is an advertisement.
 16. The computerprogram product of claim 15 wherein the window being viewed by the useris a window which receives and transmits information from and toremotely located computers.